import time

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
import unittest
from selenium.webdriver.support.select import Select


class MyTestCase(unittest.TestCase):
    driver = None

    @classmethod
    def setUpClass(cls) -> None:
        service = Service(executable_path="../driver/geckodriver.exe")
        cls.driver = webdriver.Firefox(service=service)

    def test_api2(self):
        """测试 常用 的selenium 的方法"""

        self.driver.get("http://127.0.0.1:8080/testhtml/exam/House.html")

        # 判断网页中的 某个 复选框 是否被选中
        c3 = self.driver.find_element(By.NAME, "c3")
        print('被选中' if c3.is_selected() else '未选中')

        c1 = self.driver.find_element(By.NAME, "c1")
        print('被选中' if c1.is_selected() else '未选中')

        # 通过 Name  或者 className 的方式 元素定位 wymc 文本框 来判断它 是否已启用
        # 文本框 默认的属性下 的 结果为：已启用
        # 文本框 只读的属性下 的 结果为：已启用
        # 文本框 禁用的属性下 的 结果为：未启用
        wymc = self.driver.find_element(By.NAME, "username")
        print('已启用' if wymc.is_enabled() else '未启用')

        # 判断页面中的某个元素 是否被隐藏
        text = self.driver.find_element(By.CSS_SELECTOR, "p.edit")
        print('未隐藏' if text.is_displayed() else '已隐藏')

    @classmethod
    def tearDownClass(cls) -> None:
        # cls.driver.close() # 只会 关闭一个 标签页
        cls.driver.quit()  # 推出浏览器  全部关闭所有的标签页

        pass


if __name__ == '__main__':
    unittest.main()
